package com.chinairi.mall.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.chinairi.mall.model.ReqModel;
import java.util.List;
import java.util.Map;

/**
 * 需求模型业务逻辑层接口
 * @author yyp
 * @since 2020-08-19
 */
public interface IReqModelService extends IService<ReqModel> {

    /**
     * 保存需求模型维护
     * @param reqModel 需求模型维护对象
     * @return 保存是否成功的消息和状态,success表示成功，否则表示失败
     */
    Map<String,Object> saveReqModel(ReqModel reqModel);

    /**
     * 需求模型分页查询
     * @param reqModel 查询条件
     * @return 满足条件的需求模型的集合
     */
    List<Map<String,Object>> pageReqModel(ReqModel reqModel);

    /**
     * 修改需求模型信息
     * @param reqModel 需求模型信息
     * @return 返回修改成功与否的消息
     */
    Map<String, Object> updateReqModel(ReqModel reqModel);

    /**
     * 跟据id查询模型信息
     * @param modelId 模型id
     * @return 模型信息
     */
    Map<String,Object> getReqModel(String modelId);

    /**
     * 修改模型的状态
     * @param modelId
     * @return
     */
    Map<String,Object> removeReqModel(String modelId);


    /**
     * 平均使用数量默认值
     * @param modelId 模型id
     * @return 平均使用数量值
     */
    Float modelAverageValue(String modelId);

    /**
     * 导入模型明细
     * @param reqModelDetailList 模型明细
     * @param modelId 模型id
     * @return 保存成功与否的标识和消息
     */
    Map<String,Object> importReqModelDetail(ReqModel reqModel, String modelId);

    /**
     * 删除需求模型
     * @param modelId 模型id
     * @return
     */
    Map<String, Object> deleteReqModel(String modelId);

    /**
     * 是否有效下拉
     * @return
     */
    List<Map<String, Object>> listYesOrNo();

    /**
     * 校验模型名称
     * @param modelName 模型名称
     * @return
     */
    Map<String, Object> checkModelName(String modelName);
}
